package com.foreknow.demo23;

import java.util.ArrayList;
import java.util.List;

/**
 * 订单类
 */
public class Order {
    private String orderId;//订单的编号
    private double total;//总额：需要计算,所以不应该写到构造器中初始化
    private List<OrderItem> items;

    public List<OrderItem> getItems() {
        return items;
    }

    public void setItems(OrderItem orderItem) {
        this.items.add(orderItem);
    }

    public Order(String orderId) {
        this.orderId = orderId;
        this.items = new ArrayList<>();
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public double getTotal() {
        //调用计算总额的方法
        calTotal();
        return total;
    }

    public void setTotal(double total) {
        this.total = total;
    }



    /**
     * 计算总额的方法
     * 总额 = 数量*单价
     */
    public void calTotal() {
        double total = 0;
        //1.要先遍历数组items，每遍历一次就要获取到数组中的一个OrderItem对象，然后就可以获取到数量以及单价了。
        for(int i = 0;i<items.size();i++){
            OrderItem order = items.get(i);
            total+=order.getNum()*order.getPrice();
        }
        //2.要将总额赋值给类变量total
        this.total = total;
    }
}